<?php
if(!defined('NORMAL_RUN')) exit();


/**
 * Набор функций работы с массивами
 */
abstract class Arr {

    /**
     * Возвращает значение ключа массива или [defvalue] в случае отсутствия значения
     * @param array $array исходный массив
     * @param string $key ключ массива
     * @param mixed $defValue значение по умолчанию (если не указано - null)
     * @return mixed значение $array[$key] | $defValue | null
     */
    public static function getValue($array, $key, $defValue=null) {
        if (!is_array($array)) return $defValue;
        if (!array_key_exists($key, $array)) return $defValue;
        return $array[$key];
    }


    /**
     * Устанавливает значение указанного ключа массива.
     * На выходе - предыдущее значение этого ключа
     * @param array $array входной массив
     * @param mixed $key ключ массива
     * @param mixed $value новое значение ключа массива
     * @return mixed старое значение ключа массива
     */
    public static function setValue($array, $key, $value) {
        if (!is_array($array)) return null;
        if (!array_key_exists($key, $array)) $oldVal = null;
        else $oldVal = $array[$key];
        $array[$key] = $value;
        return $oldVal;
    }
}



?>